package com.sjd.farm.mapper;

import com.sjd.farm.domain.SjdFarmLandClaimOrder;
import org.apache.ibatis.annotations.Param;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 农场土地认领订单Mapper接口
 *
 * @author joker
 * @date 2022-01-26
 */
public interface SjdFarmLandClaimOrderMapper {

    /**
     * 查询农场土地认领订单列表
     *
     * @param sjdFarmLandClaimOrder 农场土地认领订单
     * @return 农场土地认领订单集合
     */
    List<SjdFarmLandClaimOrder> selectSjdFarmLandClaimOrderList(SjdFarmLandClaimOrder sjdFarmLandClaimOrder);

    /**
     * 根据主键获取实体
     *
     * @param id 主键
     * @return 实体
     */
    SjdFarmLandClaimOrder getSjdFarmLandClaimOrderById(@Param("id") Long id);

    /**
     * 新增农场土地认领订单
     *
     * @param sjdFarmLandClaimOrder 农场土地认领订单
     * @return 结果
     */
    int insertSjdFarmLandClaimOrder(SjdFarmLandClaimOrder sjdFarmLandClaimOrder);

    /**
     * 修改农场土地认领订单
     *
     * @param sjdFarmLandClaimOrder 农场土地认领订单
     * @return 结果
     */
    int updateSjdFarmLandClaimOrder(SjdFarmLandClaimOrder sjdFarmLandClaimOrder);

    /**
     * 根据会员编号获取土地等级
     *
     * @param memberId 会员编号
     * @return 当前会员土地中最高的土地等级
     */
    int getMaxLandLevelByMemberId(@Param("memberId") Long memberId);

    /**
     * 检查获取过期的订单
     *
     * @param now 当前时间
     * @return 订单列表
     */
    List<SjdFarmLandClaimOrder> checkOverdueOrder(@Param("now") LocalDateTime now);
}
